<?php
/**
 * Created by PhpStorm.
 * User: lh
 * Date: 2020/1/20
 * Time: 11:55
 */

namespace App\Services\Com;


use App\Models\Common\City;

class StudySmsService
{
    /**
     * ---------------------------------------
     * 发送手机短信 优讯通 短信验证码
     * @param  array $info 发送单条短信         ['mobile'=>'手机号','content'=>'内容']
     *                     发送多条内容相同短信 ['mobile'=>'手机号1,手机号2,手机号3','content'=>'内容']
     *                     发送多条内容不同短信 [['mobile'=>'手机号1','content'=>'内容1'],['mobile'=>'手机号2','content'=>'内容2']]
     * @return boolean
     * ---------------------------------------
     */
    public static function mobileSMS7($info) {
        if (empty($info) || !is_array($info)) {
            return false;
        }

        $data = [];
        /** 判断$info是一维数组还是二维数组 */
        if (count($info) == count($info, 1)) {
            /** 发送单条短信、发送多条内容相同短信 */
            if (!isset($info['mobile']) || !isset($info['content'])) {
                return false;
            }
            $data['phones']  = $info['mobile'];  // 接收手机号码，多个手机号码用英文逗号分隔，最多1000个，不能为空
            $data['content'] = $info['content']; // 短信内容，最多350汉字，不能为空
        } else {
            /** 发送多条内容不同短信 */
            foreach ($info as $v) {
                if (!isset($v['mobile']) || !isset($v['content'])) {
                    return false;
                }
                $data['list'][] = ['phone' => $v['mobile'], 'content' => $v['content']];
            }
        }

        $data['account']  = '20419';  // 用户账号
        $data['password'] = md5('6,AhK8tr'); // 账号密码，需采用MD5加密(小写)
        $data['sign']     = '【IEFGBA国际教育展】';     // 短信签名，该签名有服务端告知客户端，不可修改。为空时使用默认值
        $data['subcode']  = '';                // 扩展子号码，内容可空，暂不支持
        $data['sendtime'] = '';                // 发送时间,格式yyyyMMddHHmm,可空

        // sid 安全机制验证， SHA1(token&message)加密，token用户可后台配置，没有配置代表不启用，不启用可为空，启用则必填。
        $message = json_encode($data);
        $sid     = sha1($message);

        $url       = 'http://new.yxuntong.com/emmpdata/sms/Submit?v=2.0&type=json&';
        $post_data = "sid=" . $sid . "&message=" . $message ;

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_NOBODY, true);
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
        $output = curl_exec($curl);
        curl_close($curl);

        //var_export(json_decode($output,true));
        if ($output) {
            $output = json_decode($output, true);
            if ($output['result'] == 0) {
                return true;
            }
        }
        return false;
    }
}